﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Petroleum.DB.Model
{
    /// <summary>
    /// Step4 套管程序设计
    /// </summary>
    public class CasingProgram : BaseModel
    {
        public List<Casing> CasingList { get; set; } = new List<Casing>();
        public string spudImg1 { get; set; }
        public string spudImg2 { get; set; }

        #region step12
        public string ConductorImg1 { get; set; }
        public string ConductorImg2 { get; set; }
        public string SurfaceImg1 { get; set; }
        public string SurfaceImg2 { get; set; }
        public string ProductioImg1 { get; set; }
        public string ProductioImg2 { get; set; }
        #endregion
    }
    /// <summary>
    /// 套管
    /// </summary>
    public class Casing
    {
        /// <summary>
        /// SpudNo
        /// </summary>
        public int order { get; set; } 
        public string SpudNo { get; set; } = string.Empty;
        /// <summary>
        /// 孔序列
        /// </summary>
        public string HoleSequence { get; set; } = string.Empty;

        /// <summary>
        /// 空穴
        /// </summary>
        public string HoleDepth { get; set; } = string.Empty;
        //public string HoleDepthTo { get; set; } = string.Empty;
        /// <summary>
        /// 比特大小
        /// </summary>
        public string BitSize { get; set; } = string.Empty;
        /// <summary>
        /// 套管尺寸
        /// </summary>
        public string CasingSize { get; set; } = string.Empty;
        /// <summary>
        /// 鞋套设计
        /// </summary>
        public string TratumofCasingShoeSet { get; set; } = string.Empty;
        /// <summary>
        /// 井段（重要）
        /// </summary>
        public string CasingInterval { get; set; } = string.Empty;
        public string CasingIntervalTo { get; set; } = string.Empty;
        public string CasingIntervalFrom { get; set; } = string.Empty;
        /// <summary>
        /// 拓扑结构
        /// </summary>
        public string TopOfCement { get; set; } = string.Empty;
        /// <summary>
        /// 日志项目
        /// </summary>
        public string LoggingItem { get; set; } = string.Empty;

        /// <summary>
        /// 胶结质量
        /// </summary>
        public string CementingQuality { get; set; } = string.Empty;

        /// <summary>
        /// 设计说明
        /// </summary>
        public string DescriptionOfDesign { get; set; } = string.Empty;

        //扩展参数

        /// <summary>
        /// Step7+ 钻井液的选择
        /// </summary>
        //public List<TreatmentMaintenance> TreatmentMaintenance { get; set; } = new List<TreatmentMaintenance>();
        /// <summary>
        /// Step7钻井液
        /// </summary>


        /// <summary>
        /// 钻具组合名称
        /// </summary>
        public string BHAName { get; set; } = string.Empty;
        /// <summary>
        /// 钻具开次
        /// </summary>
        public string BHANo { get; set; } = string.Empty;

        /// <summary>
        /// Step6井底钻具组合
        /// </summary>
        public List<BHA> BHAList { get; set; } = new List<BHA>();
        /// <summary>
        /// Step6
        /// </summary>
        public List<DrillingParameters> DrillingParametersList { get; set; } = new List<DrillingParameters>();
        /// <summary>
        /// Step9BitsType
        /// </summary>
        //public List<BitTypeDes> BitTypeDes { get; set; } = new List<BitTypeDes>();


        /// <summary>
        /// 内空
        /// </summary>
        //public decimal InnerSpace { get; set; } = 0;

        ///// <summary>
        ///// 理论环容
        ///// </summary>
        //public decimal EnvironmentalCapacity { get; set; } = 0;
        /// <summary>
        /// 段长
        /// </summary>
        public decimal SegmentLength { get; set; } = 0;

        #region step12新增
        public string Casingpro { get; set; } = string.Empty;
        public string Conn { get; set; } = string.Empty;
        public string Grade { get; set; } = string.Empty;
        public string Line { get; set; } = string.Empty;
        public string Thickness { get; set; } = string.Empty;
        public string Collapsing { get; set; } = string.Empty;
        public string Burs { get; set; } = string.Empty;
        public string Tensile { get; set; } = string.Empty;
        public string Total { get; set; } = string.Empty;
        public string TotalTwo { get; set; } = string.Empty;
        /// <summary>
        /// CasingIntervalTo-CasingIntervalFrom
        /// </summary>
        public string casinglength { get; set; } = string.Empty;
        #endregion

    }
    public class BHA
    {
        public int No { get; set; } = 0;
        public string ComponentsName { get; set; } = string.Empty;
        public string Size { get; set; } = string.Empty;
        public string Mount { get; set; } = string.Empty;
    }
    public class DrillingParameters
    {
        public string WOBkN { get; set; } = string.Empty;
        public string RPM { get; set; } = string.Empty;
        public string FlowRate { get; set; } = string.Empty;
        public string PumpPressureMPa { get; set; } = string.Empty;
    }
    /// <summary>
    /// Step7钻井液
    /// </summary>
    public class DepthRangeModel
    {
        public string SpudNo { get; set; } = string.Empty;
        public string BitSize { get; set; } = string.Empty;
        public string DepthRange { get; set; } = string.Empty;
        public string DepthRange1 { get; set; } = string.Empty;
        /// <summary>
        /// 形成
        /// </summary>
        public string Formation { get; set; } = string.Empty;
        /// <summary>
        /// 钻井液类型
        /// </summary>
        public string DrillingFluidType { get; set; } = string.Empty;
        /// <summary>
        /// 钻井液密度
        /// </summary>
        public string Density { get; set; } = string.Empty;
        public string Mud { get; set; }


        #region 新添的钻井液更多参数
        public string FunnelViscosity { get; set; }
        public string API { get; set; }
        public string Cake { get; set; }
        public string PH { get; set; }
        public string Sandcontent { get; set; }
        public string Frictioncoefficient { get; set; }
        public string initial { get; set; }
        public string final { get; set; }
        public string Plastic { get; set; }
        public string YieldPiont { get; set; }
        public string Solidcontent { get; set; }
        public string Bentonite { get; set; }
        #endregion
    }
    public class DeapthWell
    {
        #region 扩展step8
        public string SpudNo { get; set; } = string.Empty;
        public string BitSize { get; set; } = string.Empty;
        /// <summary>
        /// 段容积
        /// </summary>
        public string WellVolume { get; set; }
        /// <summary>
        /// 段长
        /// </summary>
        public string WellSection { get; set; }
        /// <summary>
        /// 钻井液消耗量
        /// </summary>
        public string Consumption { get; set; }


        #region 扩展step8 套管共同属性 取一个就行
        public string DensityEx { get; set; }
        public string Volume { get; set; }
        public string Barite { get; set; }
        #endregion
        #endregion
    }
    #region ==Step7+套管处理和维护
    /// <summary>
    /// 处理和维护
    /// </summary>
    public class TreatmentMaintenance
    {
        /// <summary>
        /// 密度
        /// </summary>
        public string Density { get; set; } = string.Empty;
        /// <summary>
        /// 漏斗密度
        /// </summary>
        public string FunnelViscosity { get; set; } = string.Empty;

        /// <summary>
        /// 接口
        /// </summary>
        public string API { get; set; } = string.Empty;
        /// <summary>
        /// 蛋糕
        /// </summary>
        public string Cake { get; set; } = string.Empty;
        /// <summary>
        /// pH
        /// </summary>
        public string pH { get; set; } = string.Empty;
        /// <summary>
        /// 含砂量
        /// </summary>
        public string SandContent { get; set; } = string.Empty;

        /// <summary>
        /// 摩擦系数
        /// </summary>
        public string FrictionCoefficient { get; set; } = string.Empty;

        /// <summary>
        /// 静凝胶强度
        /// </summary>
        public Rheological Rheological { get; set; } = new Rheological();
        /// <summary>
        /// 静凝胶强度
        /// </summary>
        public StaticGelStrength StaticGelStrength { get; set; } = new StaticGelStrength();

        /// <summary>
        /// 固体含量(％)
        /// </summary>
        public string SolidValue { get; set; } = string.Empty;

        /// <summary>
        /// 膨润土含量
        /// </summary>
        public string BentoniteValue { get; set; } = string.Empty;

    }
    /// <summary>
    /// 流变参数
    /// </summary>
    public class Rheological
    {
        /// <summary>
        /// 塑性粘度
        /// </summary>
        public string PlasticViscosity { get; set; } = string.Empty;

        /// <summary>
        /// 屈服点
        /// </summary>
        public string YieldPiont { get; set; } = string.Empty;
    }
    /// <summary>
    /// 静凝胶强度
    /// </summary>
    public class StaticGelStrength
    {
        /// <summary>
        /// 静凝胶强度
        /// </summary>
        public string Initial { get; set; } = string.Empty;
        /// <summary>
        /// 最终的
        /// </summary>
        public string Final { get; set; } = string.Empty;
    }
    #endregion

    #region step13
    public class SlurryModel
    {
        public string SpudNo { get; set; } = string.Empty;
        public string BitSize { get; set; } = string.Empty;
        public string CasingSize { get; set; } = string.Empty;
        public string CementingIntervalFrom { get; set; } = string.Empty;
        public string CementingIntervalTo { get; set; } = string.Empty;
        /// <summary>
        /// 容积m3
        /// </summary>
        public double SlurryVolume { get; set; } = 0;
        /// <summary>
        /// 水泥类型
        /// </summary>
        public string CementType { get; set; } = string.Empty;
        /// <summary>
        /// 水泥浆量t
        /// </summary>
        public double CementExcess { get; set; } = 0;
        public string duan { get; set; } ="";
        public string fujia { get; set; } = string.Empty;
        public string zaojiang { get; set; } = string.Empty;
    }
    #endregion
}
